package models;

import play.db.jpa.Model;

import play.*;
import play.db.jpa.*;
import javax.persistence.*;

import org.joda.time.DateTime;

import java.util.*;

public class ContaMovimentacao extends Model{

	//Atributos
	
	private long codContaMovimentacao;
	private long codUsuario;
	
	@Column(length = 50)
	private String descricao;
	private float valorTotal;
	private long codFavorecido;
	private long codFormaReceb;
	private long codContaCredito;
	
	@Temporal(TemporalType.DATE)
	private DateTime dataLancamento;
	
	@Temporal(TemporalType.DATE)
	private DateTime dataPagamento;
	
	@Column(length = 1)
	private char tipoMovimentacao;
	
	private float acrescimos;
	private float descontos;
	
	@Column(length = 2)
	private String situacao;
	private long codContaDebito;
	
	@Temporal(TemporalType.DATE)
	private DateTime dataRecebimento;
	
	@Temporal(TemporalType.DATE)
	private DateTime dataVencimento;
	private long codCaixa;
	
	
	//Métodos de acesso
	
	public long getCodContaMovimentacao()
	{
		return this.codContaMovimentacao;
	}
	
	public long getCodUsuario()
	{
		return this.codUsuario;
	}
	
	public String getDescricao()
	{
		return this.descricao;
	}
	
	public void setDescricao(String descricao)
	{
		this.descricao = descricao;
	}
	
	public float getValorTotal()
	{
		return this.valorTotal;
	}
	
	public void setValorTotal(float valorTotal)
	{
		this.valorTotal = valorTotal;
	}
	
	public long getCodFavorecido()
	{
		return this.codFavorecido;
	}
	
	public long getCodFormaReceb()
	{
		return this.codFormaReceb;
	}
	
	public long getCodContaCredito()
	{
		return this.codContaCredito;
	}
	
	public DateTime getDataLancamento()
	{
		return this.dataLancamento;
	}
	
	public DateTime getDataPagamento()
	{
		return this.dataPagamento;
	}
	
	public void setDataPagamento(DateTime dataPagamento)
	{
		this.dataPagamento = dataPagamento;
	}
	
	public char getTipoMovimentacao()
	{
		return this.tipoMovimentacao;
	}
	
	public void setTipoMovimentacao(char tipoMovimentacao)
	{
		this.tipoMovimentacao = tipoMovimentacao;
	}
	
	public float getAcrescimos()
	{
		return this.acrescimos;
	}
	
	public void setAcrescimos(float acrescimos)
	{
		this.acrescimos = acrescimos;
	}
	
	public float getDescontos()
	{
		return this.descontos;
	}
	
	public void setDescontos(float descontos)
	{
		this.descontos = descontos;
	}
	
	public String getSituacao()
	{
		return this.situacao;
	}
	
	public void setSituacao(String situacao)
	{
		this.situacao = situacao;
	}
	
	public long getCodContaDebito()
	{
		return this.codContaDebito;
	}
	
	public DateTime getDataRecebimento()
	{
		return dataRecebimento;
	}
	
	public void setDataRecebimento(DateTime dataRecebimento)
	{
		this.dataRecebimento = dataRecebimento;
	}
	
	public DateTime getDataVencimento()
	{
		return this.dataVencimento;
	}
	
	public void setDataVencimento(DateTime dataVencimento)
	{
		this.dataVencimento = dataVencimento;
	}
	
	public long getCodCaixa()
	{
		return this.codCaixa;
	}
	
	
	
	//Construtor
	
	public ContaMovimentacao(long codContaMovimentacao, long codUsuario, String descricao, float valorTotal,
			long codFavorecido, long codFormaReceb, long codContaCredito, DateTime dataPagamento, char tipoMovimentacao,
			float acrescimos, float descontos, String situacao, long codContaDebito, DateTime dataRecebimento,
			DateTime dataVencimento, long codCaixa)
	{
		this.codContaMovimentacao = codContaMovimentacao;
		this.codUsuario = codUsuario;
		this.descricao = descricao;
		this.valorTotal = valorTotal;
		this.codFavorecido = codFavorecido;
		this.codFormaReceb = codFormaReceb;
		this.codContaCredito = codContaCredito;
		this.dataLancamento = new DateTime();
		this.dataPagamento = dataPagamento;
		this.tipoMovimentacao = tipoMovimentacao;
		this.acrescimos = acrescimos;
		this.descontos = descontos;
		this.situacao = situacao;
		this.codContaDebito = codContaDebito;
		this.dataRecebimento = dataRecebimento;
		this.dataVencimento = dataVencimento;
		this.codCaixa = codCaixa;
	}
}
